package com.java.test1;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Execeotiondemo {

	public static void main(String[] args) {
		test05();

	}

	/**
	 * 运行时异常，不需要进行显示的异常处理
	 */
	public static void test01() {

		int[] arr = new int[3]; // 创建一个3个的数组
		for (int i = 0; i <= arr.length; i++) {
			System.out.println(" " + arr[i]);
		}

	}

	/**
	 * 编译时异常，必须进行显示 的异常处理
	 */
	public static void test02() {
		try {
			// try语句块发生了异常，所以出现异常之后的语句快不再执行
			FileInputStream is = new FileInputStream("e:/temp/tt.txt");
			System.out.println("执行了try语句块：");
			// try中出现异常，则执行catch中的语句块
		} catch (FileNotFoundException e) {
			System.out.println("执行了catch语句块：");
			e.printStackTrace();
		} finally {
			System.out.println("finally为必须执行的语句块！");
		}
	}

	/**
	 * 异常处理中的多catch语句
	 */
	public static void test03() {

		try {
			FileInputStream is = new FileInputStream("e:/temp/tt.txt");
			System.out.println("执行了try语句块！");
		} catch (FileNotFoundException e) {
			System.out.println("执行了catch语句：");
			e.printStackTrace();
		} catch (IOException e) {
			System.out.println("执行了catch语句：");
			e.printStackTrace();
		} catch (Exception e) {
			System.out.println("执行了catch语句：");
			e.printStackTrace();
		} catch (Throwable e) {
			System.out.println("执行了catch语句：");
			e.printStackTrace();
		} finally {
			System.out.println("执行了finally语句块！");
		}

	}

	/**
	 * 统计字符串的方法 使用String自定义方法和不使用自定义方法
	 */
	public static void test04() {
		String str = "dsjdsjdksljd";
		int count = 0;

		try {
			while (str.charAt(count++) != '\0')
				;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("输出字符串的长度为：" + (count - 1));
		System.out.println(" " + str.length());

	}

	/**
	 * 编译时异常，catch的另一种用法
	 */
	public static void test05() {
		FileInputStream f0 = null;
		try {
			f0 = new FileInputStream("e:/temp/sts.txt");
			Class.forName("com.java.sansan88");
			System.out.println("执行了try后的语句块！");
		} catch (FileNotFoundException | ClassNotFoundException e) {
			// TODO Auto-generated catch block
			// e.printStackTrace();
			System.out.println("执行了catch后的语句块！");
		} finally {
			System.out.println("执行了finally后的语句块！");

		}

	}
}
